`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: CBICR, Tsinghua Univ.
// Engineer: Hongyi Li
// 
// Create Date: 2025/01/07 09:40:05
// Design Name: 
// Module Name: Look-Ahead Route Compute
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module LkAheadRtrComp
(
    // - Hop [5] 0/1 : -/+
    // - Hop [4:0]   : num
    input        clk, rst_n,
    // TODO: To design new routing based on token
    input  [4:0] i_token, 
    input  [5:0] i_x_hop,
    input  [5:0] i_y_hop,
    output [5:0] o_x_nxt_hop,
    output [5:0] o_y_nxt_hop

);

reg [5:0] x_nxt_hop, y_nxt_hop;

always @(*) begin
    if ( | i_x_hop[4:0] ) begin
        x_nxt_hop = i_x_hop - 1;
        y_nxt_hop = i_y_hop;
    end else if ( | i_y_hop[4:0] ) begin
        x_nxt_hop = i_x_hop;
        y_nxt_hop = i_y_hop - 1;
    end else begin
        x_nxt_hop = i_x_hop;
        y_nxt_hop = i_y_hop;
    end
end

assign o_x_nxt_hop = x_nxt_hop;
assign o_y_nxt_hop = y_nxt_hop;

endmodule